﻿Public Enum enumBCTH
    KH = 1
    TC = 2
    'TCSL = 3
    'TC_Both = 4
End Enum

Public Class CBCTH
    Private _name As String
    Private _bcth_id As Integer
    Private _tcsl As Boolean
    Private _desc As String

    ''' <summary>
    ''' Giá trị cho biết là tài chính đã xác nhận tiền hay chưa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property BCTH_ID() As Integer
        Get
            Return _bcth_id
        End Get
        Set(ByVal Value As Integer)
            _bcth_id = Value
        End Set
    End Property

    ''' <summary>
    ''' Tên ký hiệu của BCTH
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property NAME() As String
        Get
            Return _name
        End Get
        Set(ByVal Value As String)
            _name = Value
        End Set
    End Property

    ''' <summary>
    ''' Giá trị cho biết là Tài chính đã xác nhận số lượng hay chưa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property TCSL() As Boolean
        Get
            Return _tcsl
        End Get
        Set(ByVal Value As Boolean)
            _tcsl = Value
        End Set
    End Property

    ''' <summary>
    ''' Mô tả thông tin của BCTH
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property DESC() As String
        Get
            Return _desc
        End Get
        Set(ByVal Value As String)
            _desc = Value
        End Set
    End Property

    Public Overrides Function ToString() As String
        Return _desc
    End Function
End Class

Public Class CBCTHs
    Public Shared Function GetTinhTrangPhieus() As ArrayList
        Dim aryKQ As New ArrayList
        'KH (BCTH = 1 và TCSL=False)
        aryKQ.Add(GetBCTH("KH"))
        'TCSL xác nhận (BCTH = 1 và TCSL=True)
        aryKQ.Add(GetBCTH("TCSL"))
        'TCT xác nhận (BCTH = 2 và TCSL=False)
        aryKQ.Add(GetBCTH("TCT"))
        'TCT xác nhận và TCSL xác nhận (BCTH = 2 và TCSL=True)
        aryKQ.Add(GetBCTH("TC"))

        'For i As Integer = 1 To System.Enum.GetValues(System.Type.GetType("enumBCTH")).Length
        '    Dim objItem As New CBCTH
        '    With objItem
        '        .BCTH_ID = i
        '        Select Case i
        '            Case enumBCTH.KH
        '                .NAME = "KH"
        '                .TCSL = False
        '                .DESC = "Chưa xác nhận (KH)"
        '            Case enumBCTH.TC
        '                .NAME = "TCT"
        '                .TCSL = False
        '                .DESC = "Đã xác nhận tiền (TCT)"
        '            Case enumBCTH.TCSL
        '                .NAME = "TCSL"
        '                .TCSL = True
        '                .DESC = "Đã xác nhận số lượng (TCSL)"
        '            Case enumBCTH.TC_Both
        '                .NAME = "TC"
        '                .TCSL = True
        '                .DESC = "Đã xác nhận tiền và số lượng (TC)"
        '        End Select
        '    End With
        '    aryKQ.Add(objItem)
        'Next
        Return aryKQ
    End Function

    Public Shared Function GetBCTH(ByVal pBCTH As String) As CBCTH
        Dim objItem As New CBCTH
        With objItem
            .NAME = pBCTH
            Select Case .NAME
                Case "KH"
                    .NAME = "KH"
                    .BCTH_ID = 1
                    .TCSL = False
                    .DESC = "Chưa xác nhận (KH)"
                Case "TCSL"
                    .NAME = "TCSL"
                    .BCTH_ID = 1 'TCSL Không quan tâm đến thông số này
                    .TCSL = True
                    .DESC = "Đã xác nhận số lượng (TCSL)"
                Case "TCT"
                    .NAME = "TCT"
                    .BCTH_ID = 2
                    .TCSL = False
                    .DESC = "Đã xác nhận tiền (TCT)"
                Case "TC"
                    .NAME = "TC"
                    .BCTH_ID = 2
                    .TCSL = False
                    .DESC = "Đã xác nhận tiền và số lượng (TC)"
            End Select
        End With
        Return objItem
    End Function

    Public Shared Function GetBCTH(ByVal pBCTH_id As Integer, ByVal pTCSL As Boolean) As CBCTH
        Dim objItem As New CBCTH
        With objItem
            .BCTH_ID = pBCTH_id
            .TCSL = pTCSL
            Select Case pBCTH_id
                Case enumBCTH.KH
                    If .TCSL = False Then
                        .NAME = "KH"
                        .DESC = "Chưa xác nhận (KH)"
                    Else
                        .NAME = "TCSL"
                        .DESC = "Đã xác nhận số lượng (TCSL)"
                    End If
                Case enumBCTH.TC
                    If .TCSL = True Then
                        .NAME = "TC"
                        .DESC = "Đã xác nhận tiền và số lượng (TC)"
                    Else
                        .NAME = "TCT"
                        .DESC = "Đã xác nhận tiền (TCT)"
                    End If
            End Select
        End With
        Return objItem
    End Function

    'Public Shared Function GetBCTH_FULL(ByVal pBCTH_id As Integer) As CBCTH
    '    Dim objItem As New CBCTH
    '    With objItem
    '        .BCTH_ID = pBCTH_id
    '        Select Case pBCTH_id
    '            Case enumBCTH.KH
    '                .DESC = "Chưa xác nhận (KH)"
    '            Case enumBCTH.TCT
    '                .DESC = "Đã xác nhận (TC)"
    '        End Select
    '    End With
    '    Return objItem
    'End Function
End Class
